package com.vframework.common.constant;

import java.lang.reflect.Field;
import java.lang.reflect.Type;
import java.util.Enumeration;
import java.util.ResourceBundle;

/***************************************************************
 * Name:        BusinessConstant.java     
 * Create At:   2012-05-22
 * Module:      业务系统常量配置
 * Description: [业务系统常量配置,系统常量统一定义到此文件，由专人统一维护]
 * Author       shanzhitong
 * ------------------------------------------------------------
 * 修改历史
 * 序号  日期  修改人   修改原因
 * 1
 * 2
***************************************************************/
public class BusinessConstant {
	/*
	 * 图片服务器域名
	 */
	public static String SOURCE_SERVER_DOMAIN = "";
	/*
	 * 私有图片服务器域名
	 */
	public static String SOURCE_PRIVATE_DOMAIN = "";
	/*
	 * 图片服务器地址前缀
	 */
	public static String FILE_STORE_PREFIX = "fs:"; // 本地文件存储前缀
	/*
	 * 图片服务器地址前缀
	 */
	public static String FILE_SEPARATOR = "/"; // 本地文件存储前缀
	/*
	 * 附件存储文件夹名
	 */
	public static String ATTACHMENT_DIR = "attachment";
	/*
	 * 图片服务器地址
	 */
	public static String SOURCE_PUBLIC_PATH = "";
	/*
	 *私有图片路径
	 */
	public static String SOURCE_PRIVATE_PATH = "";
	/*
	 * freemarker工作路径（模板生成路径）
	 */
	public static String FREEMARKER_TEMPLATE_PATH = "";
	/*
	 * cms文章发布路径
	 */
	public static String CMS_GENERATE_PATH = "";
	
    //初始化系统常量
	static {
		try {
			ResourceBundle rb = ResourceBundle.getBundle("properties/business");
			Class classs = BusinessConstant.class;
			Field[] fields = classs.getFields();
			for (Field field : fields) {
				Type type = field.getGenericType();
				String fieldName = field.getName();
				Enumeration<String> enu = rb.getKeys();
				while (enu.hasMoreElements()) {
					String proName = enu.nextElement();
					if (fieldName.equals(proName)) {
						String fieldValue = rb.getString(fieldName);
						if ("boolean".equals(type.toString())) {
							field.setBoolean(classs, Boolean.parseBoolean(fieldValue));
						} else if ("class java.lang.String".equals(type.toString())) {
							field.set(classs, fieldValue);
						}
					}
				}
			}
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
	}
}
